import request from '../request.js';
import appService from '@/service/app.js';
import $store from '@/store/index.js';
// #ifdef H5
const cache_time = (process.env.NODE_ENV !== 'development')?72000:30;
// #endif
// #ifndef H5
const cache_time = 30;
// #endif

module.exports = {
	
	check(silent = true) {
		// #ifdef MP
		const updateManager = uni.getUpdateManager();
		updateManager.onCheckForUpdate(function (res) {
		  // 请求完新版本信息的回调
		  console.log(res.hasUpdate);
		});
		updateManager.onUpdateReady(function (res) {
		  uni.showModal({
			title: '更新提示',
			content: '新版本已经准备好，是否重启应用更新到最新版本？',
			success(res) {
			  if (res.confirm) {
				// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
				updateManager.applyUpdate();
			  }
			}
		  });
		
		});
		
		updateManager.onUpdateFailed(function (res) {
		  // 新的版本下载失败
		  uni.showToast({
		  	title:'更新失败，请稍后再试！',
			icon:'none'
		  })
		});	
		// #endif
		// #ifdef APP-PLUS
		let that = this;
		let version=plus.runtime.versionCode;
		plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo){  
			version=wgtinfo.versionCode;
			appService.checkUpdate(version).then((res) => {
				if (res.is_update == true || res.is_update == 'true') {
					if(res.is_hot == 'true' || res.is_hot == 'true'){
						that.hot(res);
					} else {
						that.start(res);
					}
					
				}
		
			});	
		}); 
		
		// #endif
		// #ifdef H5
		if (!silent){
			uni.showToast({
				title: '已经是最新版本！' ,
				icon: 'none'
			});
		}
		// #endif
	},
	
	
	start(data) {
		// #ifdef APP-PLUS
		const upDater = uni.requireNativePlugin("CL-UpDater");
		//app整包升级
		let options = {
			title: data.title,
			con: data.con,
			downUrl: plus.device.vendor !== 'Apple' ? data.down_url : data.ios_down_url,
			hidCancelbtn: data.hid_cancel_btn, //是否隐藏取消按钮;
			btnBgColor: data.btn_bg_color, //设置按钮背景色颜色
			topImgBg: data.top_img_bg, //非必填，用于自定义;自定义方法请参考demo
			hidBackBtn: data.hid_back_btn //默认为false（即会显示后台更新按钮）， 设置android 整包更新弹框是否显示后台更新按钮，这个只有android整包更新才有这个参数，热更新是是无法设置的。
		}
		//必需提供下载地址;
		upDater.startUpdate(options, () => {
			console.log("弹框关闭了");
	
		});
	
		// #endif
	
	},
	
	//热更新
	hot(data){
		// #ifdef APP-PLUS
		const upDater = uni.requireNativePlugin("CL-UpDater");
		let options = {
			title: data.title,
			con: data.con,
			downUrl: plus.device.vendor !== 'Apple' ? data.down_url : data.ios_down_url, //必填
			hidCancelbtn: data.hid_cancel_btn, //是否隐藏取消按钮;
			btnBgColor: data.btn_bg_color, //设置按钮背景色颜色
			topImgBg: data.top_img_bg, //非必填，用于自定义;自定义方法请参考demo
		}
	
		plus.io.requestFileSystem(plus.io.PUBLIC_DOWNLOADS, function(fobject) {
	
			//设置文件下载根路径;	
			let rootPath = fobject.root.fullPath;
	
			upDater.wgtUpdate(options, rootPath, result => {
	
				if (result) {
					var pathNew = plus.io.convertAbsoluteFileSystem(result);
					console.log(pathNew);
	
					plus.runtime.install(pathNew, {
						force: false
					}, function() {
						//进行重新启动;
						plus.runtime.restart();
					}, (e) => {
	
						uni.showToast({
							title: '安装升级包失败' + JSON.stringify(e),
							icon: 'none'
						})
	
					});
	
				}
	
			}, () => {
	
				console.log("弹框关闭了");
	
	
			});
	
		})
	
	// #endif
	}
 
}
